package com.wlyuan.open.dto;

import com.wlyuan.open.OpenBaseSyncDTO;
import com.wlyuan.open.dto.quotation.QuotationDownDTO;
import com.wlyuan.open.dto.quotation.QuotationUpDTO;
import com.wlyuan.open.dto.quotation.TemplateSpecDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author lijing
 * @description
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class OpenTemplateSyncDTO extends OpenBaseSyncDTO implements Serializable {
    private static final long serialVersionUID = -2219835646253087206L;
    private Long templateId;

    @ApiModelProperty("合约编号")
    private String code;
    @ApiModelProperty("合同号")
    private String pactCode;
    @ApiModelProperty("合约名称")
    private String name;
    @ApiModelProperty("合约状态")
    private Integer status;
    @ApiModelProperty("合约分类 0 一对多 1 多对一 2 多对多")
    private Integer mode;
    @ApiModelProperty("开始时间")
    private LocalDateTime startTime;
    @ApiModelProperty("结束时间")
    private LocalDateTime endTime;
    @ApiModelProperty("备注")
    private String remarks;
    @ApiModelProperty("原因")
    private String reason;
    @ApiModelProperty("最低费用")
    private BigDecimal minimumFee;
    @ApiModelProperty("保险费率")
    private BigDecimal insuranceRate;
    @ApiModelProperty("税率")
    private BigDecimal taxRate;
    @ApiModelProperty("创建时间")
    private LocalDateTime createAt;
    @ApiModelProperty("创建人")
    private Long createBy;
    @ApiModelProperty("更新人")
    private Long updateBy;
    @ApiModelProperty("更新时间")
    private LocalDateTime updateAt;
    @ApiModelProperty("审核人")
    private Long agreeBy;
    @ApiModelProperty("审核时间")
    private LocalDateTime agreeAt;

    private Long customerTenantId;

    @ApiModelProperty(value = "上游")
    private QuotationUpDTO upstream;
    @ApiModelProperty(value = "下游")
    private QuotationDownDTO downstream;

    @ApiModelProperty("明细")
    private TemplateSpecDTO rules;
}

